home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333)))) CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- CGI::Push - Simple Interface to Server Push
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use CGI::Push qw(:standard);
-
- do_push(-next_page=>\&next_page,
- -last_page=>\&last_page,
- -delay=>0.5);
-
- sub next_page {
- my($q,$counter) = @_;
- return undef if $counter >= 10;
- return start_html('Test'),
- h1('Visible'),"\n",
- "This page has been called ", strong($counter)," times",
- end_html();
- }
-
- sub last_page {
- my($q,$counter) = @_;
- return start_html('Done'),
- h1('Finished'),
- strong($counter),' iterations.',
- end_html;
- }
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- CGI::Push is a subclass of the CGI object created by CGI.pm. It is
- specialized for server push operations, which allow you to create
- animated pages whose content changes at regular intervals.
-
- You provide CGI::Push with a pointer to a subroutine that will draw one
- page. Every time your subroutine is called, it generates a new page.
- The contents of the page will be transmitted to the browser in such a way
- that it will replace what was there beforehand. The technique will work
- with HTML pages as well as with graphics files, allowing you to create
- animated GIFs.
-
- UUUUSSSSIIIINNNNGGGG CCCCGGGGIIII::::::::PPPPuuuusssshhhh
- CGI::Push adds one new method to the standard CGI suite, _d_o__p_u_s_h(). When
- you call this method, you pass it a reference to a subroutine that is
- responsible for drawing each new page, an interval delay, and an optional
- subroutine for drawing the last page. Other optional parameters include
- most of those recognized by the CGI _h_e_a_d_e_r() method.
-
- You may call _d_o__p_u_s_h() in the object oriented manner or not, as you
- prefer:
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333)))) CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333))))
-
-
-
- use CGI::Push;
- $q = new CGI::Push;
- $q->do_push(-next_page=>\&draw_a_page);
-
- -or-
-
- use CGI::Push qw(:standard);
- do_push(-next_page=>\&draw_a_page);
-
- Parameters are as follows:
-
- -next_page
-
- do_push(-next_page=>\&my_draw_routine);
-
- This required parameter points to a reference to a subroutine
- responsible for drawing each new page. The subroutine should expect
- two parameters consisting of the CGI object and a counter indicating
- the number of times the subroutine has been called. It should return
- the contents of the page as an aaaarrrrrrrraaaayyyy of one or more items to print.
- It can return a false value (or an empty array) in order to abort the
- redrawing loop and print out the final page (if any)
-
- sub my_draw_routine {
- my($q,$counter) = @_;
- return undef if $counter > 100;
- return start_html('testing'),
- h1('testing'),
- "This page called $counter times";
- }
-
-
- -last_page
- This optional parameter points to a reference to the subroutine
- responsible for drawing the last page of the series. It is called
- after the -next_page routine returns a false value. The subroutine
- itself should have exactly the same calling conventions as the
- -next_page routine.
-
- -type
- This optional parameter indicates the content type of each page. It
- defaults to "text/html". Currently, server push of heterogeneous
- document types is not supported.
-
- -delay
- This indicates the delay, in seconds, between frames. Smaller delays
- refresh the page faster. Fractional values are allowed.
-
- IIIIffff nnnnooootttt ssssppppeeeecccciiiiffffiiiieeeedddd,,,, ----ddddeeeellllaaaayyyy wwwwiiiillllllll ddddeeeeffffaaaauuuulllltttt ttttoooo 1111 sssseeeeccccoooonnnndddd
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333)))) CCCCGGGGIIII::::::::PPPPuuuusssshhhh((((3333))))
-
-
-
- -cookie, -target, -expires
- These have the same meaning as the like-named parameters in
- _C_G_I::_h_e_a_d_e_r().
-
- IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG CCCCGGGGIIII::::::::PPPPuuuusssshhhh SSSSCCCCRRRRIIIIPPPPTTTTSSSS
- Server push scripts mmmmuuuusssstttt be installed as no-parsed-header (NPH) scripts
- in order to work correctly. On Unix systems, this is most often
- accomplished by prefixing the script's name with "nph-". Recognition of
- NPH scripts happens automatically with WebSTAR and Microsoft IIS. Users
- of other servers should see their documentation for help.
-
- CCCCAAAAVVVVEEEEAAAATTTTSSSS
- This is a new module. It hasn't been extensively tested.
-
- AAAAUUUUTTTTHHHHOOOORRRR IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN
- be used and modified freely, but I do request that this copyright notice
- remain attached to the file. You may modify this module as you wish, but
- if you redistribute a modified version, please attach a note listing the
- modifications you have made.
-
- Address bug reports and comments to: lstein@genome.wi.mit.edu
-
- BBBBUUUUGGGGSSSS
- This section intentionally left blank.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- the _C_G_I::_C_a_r_p manpage, the _C_G_I manpage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-